1. Field of the Invention
The invention relates to automatically monitoring, analyzing and modifying the operation, configuration, task assignment, deployment, settings or any aspect of a computing device or resource based on a set of editable and extensible rules.
2. Description of the Related Art
Typically, for computer systems to perform at optimal levels and to generally provide their users with the level of functionality desired, such computer systems need to be monitored, analyzed, reconfigured, have tasks assigned, have systems, components and the like deployed or removed, have settings modified, and be otherwise managed by a computer operator or technician. This computer system management begins at the design stage and continues throughout the operating life of the system. At the design stage such computer personnel attempt to predict the optimal computer device component requirements, configuration, task assignments and other particular settings based on knowledge and predictions of the expected usage and of the system. However, often such initial system configurations and settings are less than optimal due to a variety of reasons including, but not limited to, erroneous information, the lack of information, as well as unexpected system operation based on the complex interactions inherent in complicated multiple component/multiple setting systems.
However, even where the initial system configurations are satisfactory, this acceptable level of configuration may be subsequently upset and operating efficiencies may be lost as components are added, system demand levels change, resource activity shifts, software or hardware failures occur, or other system variables change over time. Such changes can be incremental, cyclical or random, and can be generally easy to predict, or can be all but unexpected. The causes of system inefficiencies may occur alone or in combination, and where they occur in combination, the complexities of analyzing and responding to such causes may push the limits of the ability of the computer technicians to adequately and timely respond.
Typically, the managing and controlling of the operation, configuration, task assignment, deployment, settings and other operational aspects of computing resources have been performed manually. As such, an operator or technician has been required to be present and to be continually actively monitoring all symptomatic indicators of such systems. Such computer personnel need to manually identify, diagnose and remedy problems that arise during their watch. Such manual activity, like manual activity generally, is subject to the limitations and fallibility of the individual performing the activity. Here, the nature of the computing resources, including their complexity, speed and interactivity, add to the complexity of manually monitoring and managing their operation. Further, although such manual methods have allowed for the real time monitoring and modification of particular aspects of the operation of a computing device, and even in those systems that have been partially automated, the ability to monitor and make changes have been generally based around a set of fixed actions or otherwise have provided limited options. For example, operators being notified on detection of a hardware failure and they must dispatch repair personnel, or parameters indicating excessive system demand or poor performance because of demand inform an administrator that new computing resources should be deployed by either bringing additional systems online or adding new hardware to existing systems.
Eventually, and as mentioned above, what were originally strictly manual computer device management tools were enhanced to include newer management tools which included automated techniques to better assist them in managing the operation, configuration, settings, and the like, of computing resources. Such systems include things like deleting temporary directories when disk space becomes critically low or switching to standby hardware when a failure is detected in the primary hardware. Although such systems provided automated reactions to particular symptomatic identifiers, the actions and options were typically fixed or limited. Being so limited, these computer management systems could only comprehend a certain fixed set of rules as determined by a predefined rule flow or predefined flowchart. A limitation of these systems has been that their operation has not been easily editable or easily extensible, and as such, have been difficult to both modify and/or expand their capabilities once installed. Such systems have provided computer personnel with a limited variety of both symptomatic identifiers that trigger solutions, and diagnoses that remedy the identified inefficiencies. Specifically, such systems have typically not allowed the technicians to add to automated responses, any previously undefined monitoring or actions, when such a need was identified after deployment of management software systems. As such, although such systems have allowed technicians and operators to modify some set of predefined monitors and actions they still require them to perform some additional manual operations or re-deploy management software with the added management options if new conditions or needs arise. Thus, the current systems provide limited functionality and as such have do not provide computer personnel with the tools necessary for them to optimally manage and flexibly modify the management of today's computer resources or the computer resources of tomorrow.
The every day problems experienced by computer personnel in identifying, diagnosing and analyzing inefficiencies that arise during the operation of computer devices, as well as the problems they experience in implementing appropriate and timely solutions in response to such inefficiencies, continue to be exacerbated by the ever increasing complexity of today's computer environments. Specifically, computer environments continue to increase in complexity with the systematic introduction of more powerful servers, the continued exploding demand in storage needs, the continued increase in the need to handle transactions and the general interactivity from multiple requestors from multiple locations and platforms, as well as other like system changes that impact the complexity of such computer environments. This increase in complexity has been accompanied by an increase in the diagnostic indicators to monitor, the types of diagnoses to consider, and the potential solutions to implement. This increase in computer environment complexity together with the limited level of computer resource management tool functionality available have placed heavy burdens on those who manage and control computer system resources to a point where doubt has been raised as to whether such computer personnel can keep up.
The difficulties inherent in the ever increasing complexity of today's computer environments, and the ever increasing inability of operators and technicians to optimally, both in time and in quality, and even with the aid of computer resource management tools, identify, diagnose and remedy the inefficiencies that arise in computing device systems, along with the inability of present systems to allow for effective and easy expansion of current detection, diagnosis and remedies, to include those that are newer and more effective, considered together or alone, leave the state of computer resource control and management at a level that is less than desirable, and at a level that will grow to be even less desirable as the level of computer environment complexity continues to increase.